﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using TP2.Lib;

namespace TP2.Lib
{
    [Serializable]
    public class Explorador : AvionEnemigo
    {
         
        const int VIDA_MAX_EXPLORADOR = 50,
                  VIDA_EXPLORADOR = 50,
                  RAPIDEZ_EXPLORADOR = 2,
                  RADIO_EXPLORADOR = 22,
                  PTOS_X_DESTRUC_EXPLORADOR = 50;

        private Explorador() { } /*Contructor vacio, lo utiliza la serialización*/

        public Explorador(double[] centro,/* double rdioDeGiro,*/ int[] dimensiones):base(centro,dimensiones)
        {
            //Seteo la posicion inicial como la posicion actual
            this.EsGuia = false;
            this.VidaMaxima = VIDA_MAX_EXPLORADOR;
            this.Vida = VIDA_EXPLORADOR;
            this.Rapidez = RAPIDEZ_EXPLORADOR;
            this.Radio = RADIO_EXPLORADOR;
            this.PuntosPorDestruccion = PTOS_X_DESTRUC_EXPLORADOR;
            this.EstaHuyendo = false;
            this.Dimensiones = dimensiones;
            this.Recorrido = new MovimientoCircular(this.Dimensiones, this);
            this.FlotaALaQuePertenece = null;
        }

        public override Proyectil Actuar()
        {
            //return base.Actuar();
            this.Mover();
            return null;
        }

        public Proyectil Actuar(double[] objetivo)
        {
            this.Mover();
            /*modificar trayectoria para impactar al ALgo42*/
            this.Recorrido = new MovimientoCircular(this.Dimensiones, this);
            return null; //retorna nulo porque no dispara.
        }

        //public override void AgregateALista(ArrayList lista1, ArrayList lista2)
        //{
        //    lista2.Add(this);
        //}

        #region /*--------Metodos Privados----------*/

        private void Mover()
        {
            double[] posicion = new double[3];
            posicion = this.Recorrido.GetSiguientePunto(this.Posicion);
            this.Posicion = posicion;
        }

        #endregion
    }
}
